
package Data;
import java.rmi.RemoteException;
import java.util.Date;

/**
 *
 * @author Philipp Armbruster
 * @author Stefan Fellner
 */

public class FlightRealizationImpl 
    extends java.rmi.server.UnicastRemoteObject
    implements FlightRealization {

    /* Flugnummer realisierter Flüge */

        private int realizationId;

    /* Abflugsdatum */
    
        private Date dateOfDeparture;

    /* Ankunftsdatum */

        private Date dateOfArrival;

    /* FlightID, auf welcher die FlightRealization basiert*/

        private int flightId;

    /* Der AircraftId, welche den Flug ausführt*/

        private int aircraftId;

    /* Anzahl der aller verfügbaren Sitzplätze für diese FlightRealization*/

        private int numberOfAllSeats;

    /* Pointer zeigt auf die Reihe, in der sich der nächste freie Sitzplatz befindet */

        private int pointerR;
        
    /* Pointer zeigt auf den nächsten freien Platz innerhalb der aktuellen Reihe */

        private int pointerSpR;
        


    /* Konstruktor - Klasse Flugdurchführung - */

        public FlightRealizationImpl(Date dateOfDeparture, Date dateOfArrival,
                int flightId, int aircraftId) throws java.rmi.RemoteException {

            this.dateOfDeparture = dateOfDeparture;
            this.dateOfArrival = dateOfArrival;
            this.flightId = flightId;
            this.aircraftId = aircraftId;
        }
    
        
        
    /* Set-Methoden */

        /**
        * Setzen einer Flugnummer.
        * @param realizationId (Flugnummer)
        * @throws java.rmi.RemoteException
        */

        public void setRealizationId(int realizationId) throws java.rmi.RemoteException {
            this.realizationId = realizationId;
        }

        /**
        * Setzen eines Abflugdatums.
        * @param dateOfDeparture (Abflugdatum)
        * @throws java.rmi.RemoteException
        */

        public void setDateOfDeparture(Date dateOfDeparture) throws java.rmi.RemoteException {
            this.dateOfDeparture = dateOfDeparture;
        }

        /**
        * Setzen eines Ankunftdatums.
        * @param dateOfArrival (Ankunftdatum)
        * @throws java.rmi.RemoteException
        */

        public void setDateOfArrival(Date dateOfArrival) throws java.rmi.RemoteException {
            this.dateOfArrival = dateOfArrival;
        }

       /**
        * Setzen der ID des Fluges, auf welchem die Durchführung basiert.
        * @param int flightId
        * @throws java.rmi.RemoteException
        */

        public void setRelatedFlightId(int flightId) throws java.rmi.RemoteException{
            this.flightId = flightId;
        }

        /**
        * Setzen der ID des Flugzeugs, welches den Flug durchführt.
        * @param int aircraftId
        * @throws java.rmi.RemoteException
        */

        public void setIdOfRelatedAircraft(int aircraftId) throws java.rmi.RemoteException{
            this.aircraftId = aircraftId;
        }

        /**
        * Setzen der Gesamtsitzeanzahl für diese Flugdurchführung.
        * @param int numberOfAllSeats
        * @throws java.rmi.RemoteException
        */

        public void setNumberOfAllSeats(int numberOfAllSeats) throws java.rmi.RemoteException{
            this.numberOfAllSeats = numberOfAllSeats;
        }

        /**
         * Setzen der Reihe, in der sich der nächste freie Sitzplatz befindet.
         * @param pointerR
         * @throws java.rmi.RemoteException
         */

        public void setPointerR(int pointerR) throws java.rmi.RemoteException{
            this.pointerR = pointerR;
        }

        /**
         * Setzen des nächsten freien Sitzplatzes innerhalb der aktuellen Reihe.
         * @param pointerSpR
         * @throws java.rmi.RemoteException
         */
        
        public void setPointerSpR(int pointerSpR) throws java.rmi.RemoteException{
            this.pointerSpR = pointerSpR;
        }



    /* Get-Methoden */

        /**
        * Auslesen der Flugnummer.
        * @return Flugnummer
        * @throws java.rmi.RemoteException
        */

        public int getRealizationId() throws java.rmi.RemoteException {
            return this.realizationId;
        }

        /**
        * Auslesen der Ablugdatums.
        * @return Abflugdatum
        * @throws java.rmi.RemoteException
        */

        public Date getDateOfDeparture() throws java.rmi.RemoteException {
            return this.dateOfDeparture;
        }

        /**
        * Auslesen der Ankunftdatums.
        * @return Ankunftdatum
        * @throws java.rmi.RemoteException
        */

        public Date getDateOfArrival() throws java.rmi.RemoteException {
            return this.dateOfArrival;
        }

                /**
        * Auslesen der Id des Fluges, auf welchem die Durchführung basiert.
        * @return die ID des Fluges
        * @throws java.rmi.RemoteException
        */

        public int getRelatedFlightId() throws java.rmi.RemoteException{
            return this.flightId;
        }

        /**
        * Auslesen der Id des Aircrafts, welches den Flug durchführt.
        * @return Id des Aircrafts
        * @throws java.rmi.RemoteException
        */

        public int getIdOfRelatedAircraft() throws java.rmi.RemoteException{
            return this.aircraftId;
        }

        /**
        * Auslesen der Gesamtsitzeanzahl für diese Flugdurchführung.
        * @return Sitzplatzanzahl
        * @throws java.rmi.RemoteException
        */

        public int getNumberOfAllSeats() throws java.rmi.RemoteException{
            return this.numberOfAllSeats;
        }

        /**
         * Auslesen der aktuellen Reihe in der sich der nächste freie Sitzplatz befindet.
         * @return Aktuelle Reihe
         * @throws java.rmi.RemoteException
         */
        public int getPointerR() throws java.rmi.RemoteException{
            return this.pointerR;
        }

        /**
         * Auslesen des aktuellen Sitzplatzes innerhalb der aktuellen Reihe.
         * @return Aktuellen Sitzplatz
         * @throws java.rmi.RemoteException
         */

        public int getPointerSpR() throws java.rmi.RemoteException{
            return this.pointerSpR;
        }

}
